exports.fatch = function fatch(options){
  let that = this;
  if(options.load == 1){
    wx.showLoading({
      mask: true,
      title: '加载中',
    })
  }

  return new Promise((resolve, reject) => {
    if (Object.prototype.toString.call(options.data) === '[Object Object]') {
    }
    //如果是json字符串的是特殊请求
    if (Object.prototype.toString.call(options.data) == "[object String]"){
      let obj=JSON.parse(options.data)
      options.data = JSON.stringify(obj)
    }

    wx.request({
      url: options.url,
      data: options.data,
      header: options.header,
      method: options.method,
      success:function(res){
        //如果没有登录 
        //如果请求错误
        //如果返回不是200
        if(res.statusCode != 200 && res.statusCode != 201){
          if(res.statusCode == 401){
            if(options.url.indexOf("userlogin") == -1){
              unauthorized()
            }
          }else if(res.statusCode == 404){
            wx.showToast({
              title: '请求错误',
              icon: 'none',
              duration: 3000
            })
          }
        }
        resolve(res) //将成功的数据给resolve处理
      },
      fail:function(res){
        reject(res) //将错误信息给reject处理
        options.load == 1 ? wx.hideLoading() : ""
        wx.showToast({
          title: '网络链接超时',
          icon: 'none',
          duration: 3000
        })
      }
      
    })

  }) 

}

/**
 * 未登录处理
 */
function unauthorized(){
  //清空token 和 userInfo
  wx.removeStorageSync('token')
  wx.removeStorageSync('userInfo')
  wx.redirectTo({
    url: '/pages/login/login',
  })
}